Product Code Database
Example Keywords: resident evil -medical $93
barcode-scavenger
   » » Wiki: Embedded Software
Tag Wiki 'Embedded Software'.
Tag

Embedded software is computer , written to control machines or devices that are not typically thought of as computers, commonly known as . It is typically specialized for the particular hardware that it runs on and has time and memory constraints. This term is sometimes used interchangeably with .

(2014). 9783319068657, Springer. .

A precise and stable characteristic feature is that no or not all functions of embedded software are initiated/controlled via a human interface, but through machine-interfaces instead.

Manufacturers build embedded software into the electronics of , telephones, modems, , appliances, toys, security systems, , televisions and set-top boxes, and , for example. This software can be very simple, such as lighting controls running on an 8-bit with a few of memory with the suitable level of processing complexity determined with a Probably Approximately Correct Computation framework. (a methodology based on randomized algorithms). However, embedded software can become very sophisticated in applications such as routers, optical network elements, , , and systems.


Operating systems
Unlike standard computers that generally use operating systems such as , Windows or , embedded software may use no operating system. When they do use one, a wide variety of operating systems can be chosen from, typically a real-time operating system. Code for embedded software is typically written in C or C++, but various high-level programming languages, such as C#, Java, Python and , are now also in common use to target microcontrollers and embedded systems. Assembly languages are often used too, especially in booting and handling. Ada is used in some military and aviation projects.


Differences from application software
Most consumers are familiar with application software that provide functionality on a computer. However embedded software is often less visible, but no less complicated. Unlike application software, embedded software has fixed hardware requirements and capabilities, and addition of third-party hardware or software is strictly controlled.

Embedded software needs to include all needed at manufacturing time, and the device drivers are written for the various hardware devices. These device drivers, called BSP (Board support package), form the layer of software containing hardware-specific drivers and other routines that allow a particular operating system (traditionally a real-time operating system, or RTOS) to function in a particular hardware environment (a computer or CPU card), integrated with the RTOS itself. The software is highly dependent on the CPU and specific chips chosen. Most embedded software engineers have at least a passing knowledge of reading , and reading data sheets for components to determine usage of registers and communication system. Conversion between , and binary is useful as well as using .

Web applications are often used for managing hardware, although XML files and other output may be passed to a computer for display. File systems with folders are typically used, however SQL databases are often absent.

Software development requires use of a , which runs on a computer but produces executable code for the target device. Debugging requires use of an in-circuit emulator, and debugging hardware such as or SWD debuggers. Software developers often have access to the complete kernel (OS) source code.

Size of the storage memory and RAM can vary significantly. Some systems run in 16 KB of Flash and 4 KB of RAM with a CPU operating at 8 MHz, other systems can rival contemporary computers. These space requirements lead to more work being done in C or embedded C++, instead of C++. Interpreted languages like (while e.g. Parallax Propeller can use compiled BASIC) and Java (Java ME Embedded 8.3 is available for e.g. ARM Cortex-M4, Cortex-M7 microcontrollers and older ARM11 used in and Gen. 2) are not commonly used; while an implementation of the interpreted Python 3 language is however available expressly for microcontroller use, e.g. 32-bit ARM-based (such as BBC ) and 16-bit PIC microcontrollers.


Communication protocols
Communications between processors and between one processor and other components are essential. Besides , hardware level common protocols include I²C, SPI, , 1-Wires, , and USB.

Communications protocols designed for use in are available as from companies including InterNiche Technologies and . Open-source protocols stem from uIP, , and others.


See also


Notes
  • Edward A. Lee, "Embedded Software", Advances in Computers (Marvin Victor Zelkowitz, editor) 56, Academic Press, London, 2002.

Page 1 of 1
1
Page 1 of 1
1

Account

Social:
Pages:  ..   .. 
Items:  .. 

Navigation

General: Atom Feed Atom Feed  .. 
Help:  ..   .. 
Category:  ..   .. 
Media:  ..   .. 
Posts:  ..   ..   .. 

Statistics

Page:  .. 
Summary:  .. 
1 Tags
10/10 Page Rank
5 Page Refs
1s Time